package com.glb.gilibuy.service;

import com.glb.gilibuy.entity.User;
import com.glb.gilibuy.web.vo.UserVO;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Author: Yingtian qian
 * @Date: 2021/7/30 10:41
 */
public interface UserService {

    /**
     * @Description: 手机号/邮箱注册
     * @param: username 用户名, password 密码, identity 手机号/邮箱
     * @return: JSON提示信息
     */
    Map<String, Object> registerUser(String username, String password, String identity, boolean isPhone);

    /**
     * @Description: 登录
     * @param: username 用户名
     * @param: password 密码
     * @param: httpSession session对象
     * @return: JSON提示信息
     */
    Map<String, Object> checkLogin(String username, String password, HttpSession httpSession);

    /**
     * @Description: 重置用户密码
     * @param:
     * @return:
     */
    Map<String, Object> updateUserPassword(User user);

    /**
     * @Description: 用户信息修改并返回最新的用户信息
     * @param: userVO 用户VO
     * @param: httpSession session对象
     * @return: 用户VO对象
     */
    UserVO updateUserInfo(UserVO userVO, HttpSession httpSession);

    /**
     * @Description: 判断身份凭证信息是否有效
     * @param:
     * @return:
     */
    Boolean isIdentityExist(String identity, boolean isPhone, HttpSession httpSession);

    /**
     * @Description: 用户封禁与解除(0 - 未冻结 1 - 已冻结) 【管理员用·未实现】
     * @param: ids 用户id
     * @param: status 状态号
     * @return: 修改是否成功
     */
    Boolean lockUsers(String[] ids, int status);

    /**
     * @Description: 获取全部用户列表(可分页) 【管理员用·未实现】
     * @param: null
     * @return: 用户列表
     */
    List<User> findAllUsers();

}
